home *** CD-ROM | disk | FTP | other *** search
/ Turnbull China Bikeride / Turnbull China Bikeride - Disc 2.iso / STUTTGART / NEWSOFT / AUGUST / FREENET2 / !FreeNet / Docs / Tuning < prev   
Text File  |  1996-10-13  |  11KB  |  297 lines

  1.                     Tuning the FreeNet TCP/IP Stack
  2.  
  3.                           (C) Tom Hughes 1995
  4.  
  5. 0. Copyright
  6.  
  7.   The FreeNet module and application and the tools and documentation
  8.   that go with them are all copyright. They are however released as
  9.   freeware subject to certain terms and conditions. These are described
  10.   in the file named 'Licence' which should have accompanied this
  11.   document.
  12.  
  13. 1. Overview
  14.  
  15.   The FreeNet TCP/IP stack has a number of low-level configuration options
  16.   which allow the behaviour of the stack to be tweaked in various ways.
  17.   
  18.   Most of these will not be of interest to most users, as the stack comes
  19.   with the options preset to values which are sensible for most purposes,
  20.   but for those who may need to fiddle with these things, this document
  21.   describes the available options.
  22.   
  23.   The options are all held in the file !FreeUser.Files.Config, where each
  24.   line is divided into three parts. The first part is the 'class' of the
  25.   option, and is used to group related options. The second is the option
  26.   name within the class, and the third is the value to set the option to.
  27.   
  28. 2. The Options
  29.  
  30.   This section lists each of the available options. The name of each option
  31.   is given along with the type of argument it takes, default value for the
  32.   option, and a description of it's effects. Options described as boolean
  33.   options take either 'yes', 'on' or 'true' as a true value, and anything
  34.   else as being false.
  35.   
  36.     Option:      arp timeout
  37.     Type:        Numeric
  38.     Units:       Minutes
  39.     Default:     20
  40.     Description: The length of time that an ARP entry will be cached
  41.                  for. After this expires, a new ARP lookup will be done
  42.                  next time the address is needed.
  43.   
  44.     Option:      arp retries
  45.     Type:        Numeric
  46.     Default:     5
  47.     Description: The number of times an ARP lookup will be retried
  48.                  before the host is considered as dead.
  49.   
  50.     Option:      arp downtime
  51.     Type:        Numeric
  52.     Units:       Seconds
  53.     Default:     20
  54.     Description: The length of time that a host that has failed to
  55.                  respond to ARP queries will be considered as being
  56.                  dead. After this period a new series of lookups
  57.                  will be attempted.
  58.  
  59.     Option:      route timeout
  60.     Type:        Numeric
  61.     Units:       Minutes
  62.     Default:     10
  63.     Description: The length of time that an routing table entry that
  64.                  is created dynamically (by a redirect or cloning) will
  65.                  stay in existence after the last user of the route has
  66.                  released it.
  67.  
  68.     Option:      ip forwarding
  69.     Type:        Boolean
  70.     Default:     Off
  71.     Description: Controls whether FreeNet will act as a router and
  72.                  forward packets arriving on one interface to other
  73.                  attached networks where necessary.
  74.   
  75.     Option:      ip sendredirects
  76.     Type:        Boolean
  77.     Default:     Off
  78.     Description: Controls whether FreeNet will send an ICMP redirect
  79.                  message when it forwards a packet via the same interface
  80.                  it arrived on.
  81.  
  82.     Option:      ip directedbroadcast
  83.     Type:        Boolean
  84.     Default:     Off
  85.     Description: Controls whether FreeNet will act upon directed
  86.                  broadcasts targeted at attached networks.
  87.   
  88.     Option:      ip localsubnets
  89.     Type:        Boolean
  90.     Default:     Off
  91.     Description: Controls whether all subnets of a directly connected
  92.                  net are considered local, or only the directly connected
  93.                  subnet itself.
  94.   
  95.     Option:      ip firewall
  96.     Type:        Boolean
  97.     Default:     Off
  98.     Description: Controls whether packets are passed throught the built
  99.                  in firewall or not. The firewall is configured with the
  100.                  ipfw command.
  101.   
  102.     Option:      ip masquerading
  103.     Type:        Boolean
  104.     Default:     Off
  105.     Description: Controls whether the stack will masquerade for other
  106.                  hosts or not. Masquerading is configured using the
  107.                  ipfw command.
  108.  
  109.     Option:      ip ttl
  110.     Type:        Numeric
  111.     Default:     64
  112.     Description: The default TTL for IP datagrams whose TTL is not set
  113.                  more explicitly. This is always overidden for UDP and
  114.                  TCP packets.
  115.   
  116.     Option:      tcp ttl
  117.     Type:        Numeric
  118.     Default:     60
  119.     Description: The default TTL for TCP datagrams whose TTL is not set
  120.                  more explicitly.
  121.   
  122.     Option:      tcp minrto
  123.     Type:        Numeric
  124.     Units:       Centiseconds
  125.     Default:     20
  126.     Description: The minimum value for a TCP retransmission timeout. The
  127.                  stack will always wait this long before retransmitting
  128.                  a TCP segment.
  129.   
  130.     Option:      tcp maxrto
  131.     Type:        Numeric
  132.     Units:       Centiseconds
  133.     Default:     6000
  134.     Description: The maximum value for a TCP retransmission timeout. The
  135.                  stack will never wait any longer than this before
  136.                  retransmitting a TCP segment.
  137.   
  138.     Option:      tcp minmss
  139.     Type:        Numeric
  140.     Units:       Bytes
  141.     Default:     32
  142.     Description: The minimum MSS value for a TCP connection.
  143.   
  144.     Option:      tcp maxmss
  145.     Type:        Numeric
  146.     Units:       Bytes
  147.     Default:     65495
  148.     Description: The maximum MSS value for a TCP connection.
  149.   
  150.     Option:      tcp defaultmss
  151.     Type:        Numeric
  152.     Units:       Bytes
  153.     Default:     536
  154.     Description: The default MSS value for a TCP connection that is
  155.                  not considered to be a local connection.
  156.     
  157.     Option:      tcp timeout
  158.     Type:        Numeric
  159.     Units:       Seconds
  160.     Default:     75
  161.     Description: The length of time before a TCP connection attempt will
  162.                  timeout and report a failure.
  163.     
  164.     Option:      tcp keeptimeout
  165.     Type:        Numeric
  166.     Units:       Minutes
  167.     Default:     120
  168.     Description: The frequency with which keepalive probes are sent on
  169.                  those TCP connections which have them enabled. Only when
  170.                  the connection has received no data for this length of
  171.                  time will it start to actively check if it is still
  172.                  alive.
  173.     
  174.     Option:      tcp keepinterval
  175.     Type:        Numeric
  176.     Units:       Seconds
  177.     Default:     75
  178.     Description: The length of time between succesive probes when trying
  179.                  to check if a TCP connection is still alive.
  180.     
  181.     Option:      tcp idletimeout
  182.     Type:        Numeric
  183.     Units:     Seconds
  184.     Default:     600
  185.     Description: The length of time that TCP will probe a connection for
  186.                  when the keepalive timer expires.
  187.  
  188.     Option:      tcp sendbuf
  189.     Type:        Numeric
  190.     Units:       Bytes
  191.     Default:     4096
  192.     Description: The default size of the send buffer for a TCP connection.
  193.   
  194.     Option:      tcp receivebuf
  195.     Type:        Numeric
  196.     Units:       Bytes
  197.     Default:     4096
  198.     Description: The default size of the receive buffer for a TCP
  199.                  connection.
  200.   
  201.     Option:      udp ttl
  202.     Type:        Numeric
  203.     Default:     60
  204.     Description: The default TTL for UDP datagrams whose TTL is not set
  205.                  more explicitly.
  206.   
  207.     Option:      udp sendbuf
  208.     Type:        Numeric
  209.     Units:       Bytes
  210.     Default:     8192
  211.     Description: The default size of the send buffer for a UDP socket, and
  212.                  the maximum size of packet that may be transmitted via a
  213.                  UDP socket.
  214.   
  215.     Option:      udp receivebuf
  216.     Type:        Numeric
  217.     Units:       Bytes
  218.     Default:     20480
  219.     Description: The default size of the receive buffer for a UDP
  220.                  socket.
  221.   
  222.     Option:      loopback mtu
  223.     Type:        Numeric
  224.     Units:     Butes
  225.     Default:     8192
  226.     Description: The MTU for the builtin loopback interface.
  227.    
  228.     Option:      bsd version
  229.     Type:        Numeric
  230.     Default:     44
  231.     Description: The version of BSD which the FreeNet sockets interface
  232.                  conforms to. The value given is multiplied by ten, so 44
  233.                  is BSD 4.4, 43 is BSD 4.3 and so on.
  234.  
  235.     Option:      trace file
  236.     Type:        Filename
  237.     Default:     <FreeUser$Dir>.Trace
  238.     Description: The location of the file used to write packet traces when
  239.                  tracing is enabled for an interface.
  240.   
  241.     Option:      debug file
  242.     Type:        Filename
  243.     Default:     <FreeUser$Dir>.Debug
  244.     Description: The file used to write debugging data. This option is
  245.                  only really of use to developers of the stack who have
  246.                  added code to write debugging information to the file.
  247.   
  248.     Option:      debug state
  249.     Type:        Numeric
  250.     Default:     0
  251.     Description: Controls whether debugging information is currently
  252.                  being written to the debugging file or not.
  253.   
  254.     Option:      log file
  255.     Type:        Filename
  256.     Default:     <FreeUser$Dir>.LogFile
  257.     Description: The file used to write log messages while the stack is
  258.                  running.
  259.   
  260.     Option:      log level
  261.     Type:        log level (info, warning or error)
  262.     Default:     error
  263.     Description: Controls which logging message will be recorded in the
  264.                  log file.
  265.  
  266. 3. Changing Options on a Running Stack
  267.  
  268.   Some of the above options may be changed while the stack is running by
  269.   using the NetConf command, whose syntax is as follows:
  270.   
  271.      NetConf <class> <option> [<value>]
  272.      
  273.   If you don't specify a value, the options current value will be shown,
  274.   otherwise a new value will be set.
  275.  
  276. 4. Support for Interface Aliases
  277.  
  278.   In certain circumstances, it is useful to be able to give one hardware
  279.   interface multiple addresses - this is typically done where several 
  280.   subnets coexist on the same physical cable.
  281.  
  282.   FreeNet supports this by using the ifconfig command to add additional
  283.   addresses for an interface:
  284.  
  285.      ifconfig <interface> alias inet <address> [<remote-address>]
  286.               [netmask <netmask>] [broadcast <address>]
  287.  
  288.   An interface alias can also be removed using the ifconfig command:
  289.  
  290.      ifconfig <interface> -alias inet <address>
  291.  
  292.   As an example, consider the commands to configure an ethernet interface
  293.   with the addresses 10.1.0.1 and 10.2.0.1, with netmask 0xffff0000:
  294.  
  295.      ifconfig eb0 inet 10.1.0.1 netmask 0xffff0000
  296.      ifconfig eb0 alias inet 10.2.0.1 netmask 0xffff0000
  297.